
package gui;

import business.Funcionario;

import javax.swing.JOptionPane;

public class Funcionario_Principal extends javax.swing.JPanel {

    private static Funcionario_Principal instance;

    void setjTextFieldFuncionarioNome(String nome) {
        jTextFieldFuncionarioNome.setText(nome);
    }

    void setjTextFieldFuncionarioCPF(String cpf) {
        jTextFieldFuncionarioCPF.setText(cpf);
    }
    
    void setjTextFieldFuncionarioNumero(String numero) {
        jTextFieldFuncionarioNumero.setText(numero);
    }

    void setjTextFieldFuncionarioCEP(String cep) {
        jTextFieldFuncionarioCEP.setText(cep);
    
    }

    void setjTextFieldFuncionarioCPFEnabled(boolean enable) {
         jTextFieldFuncionarioCPF.setEnabled(enable);
    }

    void setjTextFieldFuncionarioRGEnabled(boolean enable) {
         jTextFieldFuncionarioRG.setEnabled(enable);
    }

    void setjTextFieldFuncionarioNomeEnabled(boolean enable) {
         jTextFieldFuncionarioNome.setEnabled(enable);
    }

    void setjTextFieldFuncionarioDataNascimentoEnabled(boolean enable) {
         jTextFieldFuncionarioDataNascimento.setEnabled(enable);
    }

    void setjTextFieldFuncionarioSenhaEnabled(boolean enable) {
         jPasswordFieldFuncionarioSenha.setEnabled(enable);
    }
    
    
    public enum StatusFuncionarioPrincipal{
        scInserindo,
        scPesquisado,
    }
    
    private StatusFuncionarioPrincipal sStatus;
    
    public Funcionario_Principal() {
        sStatus=StatusFuncionarioPrincipal.scInserindo;
        initComponents();
        
    }

    public static Funcionario_Principal getInstance(){
        if (instance == null)
           instance = new Funcionario_Principal();
        return instance;
    }
    
    public StatusFuncionarioPrincipal getsStatus() {
        return sStatus;
    }

    public void setsStatus(StatusFuncionarioPrincipal sStatus) {
        this.sStatus = sStatus;
    }


    public void setjTextFieldFuncionarioComplemento(String complemento) {
        this.jTextFieldFuncionarioComplemento.setText(complemento);
    }

    public void setjTextFieldFuncionarioDataNascimento(String dataNascimento) {
        this.jTextFieldFuncionarioDataNascimento.setText(dataNascimento);
    }

    public void setjTextFieldFuncionarioEndereco(String endereco) {
        this.jTextFieldFuncionarioEndereco.setText(endereco);
    }

    public void setjTextFieldFuncionarioLogin(String login) {
        this.jTextFieldFuncionarioLogin.setText(login);
    }

    public void setjTextFieldFuncionarioRG(String rg) {
        this.jTextFieldFuncionarioRG.setText(rg);
    }
    
    

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jLabel2 = new javax.swing.JLabel();
        jLabelFuncionarioCPF = new javax.swing.JLabel();
        jLabelFuncionarioRg = new javax.swing.JLabel();
        jLabelFuncionarioNome = new javax.swing.JLabel();
        jLabelFuncionarioDataNascimento = new javax.swing.JLabel();
        jLabelFuncionarioComplemento = new javax.swing.JLabel();
        jLabelFuncionarioNumero = new javax.swing.JLabel();
        jTextFieldFuncionarioRG = new javax.swing.JTextField();
        jTextFieldFuncionarioNome = new javax.swing.JTextField();
        jTextFieldFuncionarioComplemento = new javax.swing.JTextField();
        jTextFieldFuncionarioNumero = new javax.swing.JTextField();
        jTextFieldFuncionarioCPF = new javax.swing.JTextField();
        jTextFieldFuncionarioDataNascimento = new javax.swing.JTextField();
        jLabelFuncionarioEndereco = new javax.swing.JLabel();
        jTextFieldFuncionarioEndereco = new javax.swing.JTextField();
        jLabelFuncionarioCEP = new javax.swing.JLabel();
        jTextFieldFuncionarioCEP = new javax.swing.JTextField();
        jLabelFuncionarioLogin = new javax.swing.JLabel();
        jTextFieldFuncionarioLogin = new javax.swing.JTextField();
        jButtonFuncionarioSalvar = new javax.swing.JButton();
        jButtonFuncionarioEditar = new javax.swing.JButton();
        jButtonFuncionarioPesquisar = new javax.swing.JButton();
        jButtonFuncionarioDeletar = new javax.swing.JButton();
        jLabelFuncionarioSenha = new javax.swing.JLabel();
        jPasswordFieldFuncionarioSenha = new javax.swing.JPasswordField();
        jButtonFuncionarioNovo = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();

        java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("gui/Bundle"); // NOI18N
        jLabel2.setText(bundle.getString("Funcionario_Principal.jLabel2.text")); // NOI18N

        jLabelFuncionarioCPF.setText(bundle.getString("Funcionario_Principal.jLabelFuncionarioCPF.text")); // NOI18N

        jLabelFuncionarioRg.setText(bundle.getString("Funcionario_Principal.jLabelFuncionarioRg.text")); // NOI18N

        jLabelFuncionarioNome.setText(bundle.getString("Funcionario_Principal.jLabelFuncionarioNome.text")); // NOI18N

        jLabelFuncionarioDataNascimento.setText(bundle.getString("Funcionario_Principal.jLabelFuncionarioDataNascimento.text")); // NOI18N

        jLabelFuncionarioComplemento.setText(bundle.getString("Funcionario_Principal.jLabelFuncionarioComplemento.text")); // NOI18N

        jLabelFuncionarioNumero.setText(bundle.getString("Funcionario_Principal.jLabelFuncionarioNumero.text")); // NOI18N

        jTextFieldFuncionarioRG.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                jTextFieldFuncionarioRGFocusLost(evt);
            }
        });

        jTextFieldFuncionarioNome.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                jTextFieldFuncionarioNomeFocusLost(evt);
            }
        });

        jTextFieldFuncionarioComplemento.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                jTextFieldFuncionarioComplementoFocusLost(evt);
            }
        });

        jTextFieldFuncionarioNumero.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                jTextFieldFuncionarioNumeroFocusLost(evt);
            }
        });

        jTextFieldFuncionarioCPF.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                jTextFieldFuncionarioCPFFocusLost(evt);
            }
        });

        jTextFieldFuncionarioDataNascimento.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                jTextFieldFuncionarioDataNascimentoFocusLost(evt);
            }
        });

        jLabelFuncionarioEndereco.setText(bundle.getString("Funcionario_Principal.jLabelFuncionarioEndereco.text")); // NOI18N

        jTextFieldFuncionarioEndereco.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                jTextFieldFuncionarioEnderecoFocusLost(evt);
            }
        });

        jLabelFuncionarioCEP.setText(bundle.getString("Funcionario_Principal.jLabelFuncionarioCEP.text")); // NOI18N

        jTextFieldFuncionarioCEP.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                jTextFieldFuncionarioCEPFocusLost(evt);
            }
        });

        jLabelFuncionarioLogin.setText(bundle.getString("Funcionario_Principal.jLabelFuncionarioLogin.text")); // NOI18N

        jTextFieldFuncionarioLogin.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                jTextFieldFuncionarioLoginFocusLost(evt);
            }
        });

        jButtonFuncionarioSalvar.setText(bundle.getString("Funcionario_Principal.jButtonFuncionarioSalvar.text")); // NOI18N
        jButtonFuncionarioSalvar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonFuncionarioSalvarActionPerformed(evt);
            }
        });

        jButtonFuncionarioEditar.setText(bundle.getString("Funcionario_Principal.jButtonFuncionarioEditar.text")); // NOI18N
        jButtonFuncionarioEditar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonFuncionarioEditarActionPerformed(evt);
            }
        });

        jButtonFuncionarioPesquisar.setText(bundle.getString("Funcionario_Principal.jButtonFuncionarioPesquisar.text")); // NOI18N
        jButtonFuncionarioPesquisar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonFuncionarioPesquisarActionPerformed(evt);
            }
        });

        jButtonFuncionarioDeletar.setText(bundle.getString("Funcionario_Principal.jButtonFuncionarioDeletar.text")); // NOI18N
        jButtonFuncionarioDeletar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonFuncionarioDeletarActionPerformed(evt);
            }
        });

        jLabelFuncionarioSenha.setText(bundle.getString("Funcionario_Principal.jLabelFuncionarioSenha.text")); // NOI18N

        jPasswordFieldFuncionarioSenha.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jPasswordFieldFuncionarioSenhaActionPerformed(evt);
            }
        });

        jButtonFuncionarioNovo.setText(bundle.getString("Funcionario_Principal.jButtonFuncionarioNovo.text")); // NOI18N
        jButtonFuncionarioNovo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonFuncionarioNovoActionPerformed(evt);
            }
        });

        jLabel1.setFont(new java.awt.Font("Tahoma", 0, 18));
        jLabel1.setText(bundle.getString("Funcionario_Principal.jLabel1.text")); // NOI18N

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                .addComponent(jButtonFuncionarioDeletar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jButtonFuncionarioPesquisar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jButtonFuncionarioEditar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jButtonFuncionarioSalvar, javax.swing.GroupLayout.PREFERRED_SIZE, 173, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addComponent(jButtonFuncionarioNovo, javax.swing.GroupLayout.PREFERRED_SIZE, 173, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(33, 33, 33)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabelFuncionarioEndereco)
                            .addComponent(jLabelFuncionarioNome)
                            .addComponent(jLabelFuncionarioCPF)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabelFuncionarioNumero)
                                .addGap(21, 21, 21)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(jTextFieldFuncionarioNome, javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addGroup(layout.createSequentialGroup()
                                        .addComponent(jTextFieldFuncionarioCPF, javax.swing.GroupLayout.PREFERRED_SIZE, 139, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jLabelFuncionarioRg)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextFieldFuncionarioRG, javax.swing.GroupLayout.PREFERRED_SIZE, 151, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jLabelFuncionarioDataNascimento)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextFieldFuncionarioDataNascimento, javax.swing.GroupLayout.PREFERRED_SIZE, 134, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addComponent(jTextFieldFuncionarioEndereco, javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                                        .addComponent(jTextFieldFuncionarioNumero, javax.swing.GroupLayout.PREFERRED_SIZE, 79, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(18, 18, 18)
                                        .addComponent(jLabelFuncionarioComplemento)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                        .addComponent(jTextFieldFuncionarioComplemento, javax.swing.GroupLayout.PREFERRED_SIZE, 135, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                            .addGroup(layout.createSequentialGroup()
                                                .addComponent(jLabelFuncionarioSenha)
                                                .addGap(23, 23, 23)
                                                .addComponent(jPasswordFieldFuncionarioSenha))
                                            .addGroup(layout.createSequentialGroup()
                                                .addComponent(jLabelFuncionarioCEP)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                                .addComponent(jTextFieldFuncionarioCEP, javax.swing.GroupLayout.PREFERRED_SIZE, 159, javax.swing.GroupLayout.PREFERRED_SIZE))))
                                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                                        .addComponent(jLabelFuncionarioLogin)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                        .addComponent(jTextFieldFuncionarioLogin, javax.swing.GroupLayout.PREFERRED_SIZE, 135, javax.swing.GroupLayout.PREFERRED_SIZE))))))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(376, 376, 376)
                        .addComponent(jLabel1)))
                .addContainerGap(86, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addGap(26, 26, 26)
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 57, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jButtonFuncionarioNovo, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jButtonFuncionarioSalvar, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButtonFuncionarioEditar, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButtonFuncionarioPesquisar, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButtonFuncionarioDeletar, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabelFuncionarioNome)
                            .addComponent(jTextFieldFuncionarioNome, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabelFuncionarioCPF)
                            .addComponent(jTextFieldFuncionarioCPF, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabelFuncionarioDataNascimento)
                            .addComponent(jTextFieldFuncionarioDataNascimento, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jTextFieldFuncionarioRG, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabelFuncionarioRg))
                        .addGap(18, 18, 18)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabelFuncionarioEndereco)
                            .addComponent(jTextFieldFuncionarioEndereco, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jTextFieldFuncionarioNumero, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabelFuncionarioNumero)
                            .addComponent(jLabelFuncionarioComplemento)
                            .addComponent(jTextFieldFuncionarioComplemento, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jTextFieldFuncionarioCEP, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabelFuncionarioCEP))
                        .addGap(45, 45, 45)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jTextFieldFuncionarioLogin, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabelFuncionarioLogin))
                        .addGap(34, 34, 34)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabelFuncionarioSenha)
                            .addComponent(jPasswordFieldFuncionarioSenha, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addGap(8, 8, 8))
        );
    }// </editor-fold>//GEN-END:initComponents

    private void jButtonFuncionarioEditarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonFuncionarioEditarActionPerformed
       if (sStatus != StatusFuncionarioPrincipal.scPesquisado)
           JOptionPane.showMessageDialog(this,"Pesquise um funcionário para editá-lo.");
       else
       {
           
            Funcionario.alterarFuncionario(jTextFieldFuncionarioCPF.getText(),jTextFieldFuncionarioRG.getText(),
            jTextFieldFuncionarioNome.getText(),jTextFieldFuncionarioDataNascimento.getText(),
            jTextFieldFuncionarioCEP.getText(),jTextFieldFuncionarioEndereco.getText(),
            jTextFieldFuncionarioNumero.getText(),jTextFieldFuncionarioComplemento.getText(),
            jTextFieldFuncionarioLogin.getText(),jPasswordFieldFuncionarioSenha.getPassword().toString());
            jTextFieldFuncionarioNome.setEnabled(true);
            jTextFieldFuncionarioCPF.setEnabled(true);
            jTextFieldFuncionarioRG.setEnabled(true);
            jTextFieldFuncionarioDataNascimento.setEnabled(true);
            jPasswordFieldFuncionarioSenha.setEnabled(true);
            sStatus = StatusFuncionarioPrincipal.scInserindo;
            LimpaTela();
       }
       
       
       //TODO implementar edição do funcionário  
    }//GEN-LAST:event_jButtonFuncionarioEditarActionPerformed

    private void jButtonFuncionarioPesquisarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonFuncionarioPesquisarActionPerformed
       Funcionario_Pesquisar frame=new Funcionario_Pesquisar();
       frame.setVisible(true);
    }//GEN-LAST:event_jButtonFuncionarioPesquisarActionPerformed

    private void jButtonFuncionarioSalvarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonFuncionarioSalvarActionPerformed
   
        if (sStatus == StatusFuncionarioPrincipal.scInserindo){
        if (jTextFieldFuncionarioCPF.getText().isEmpty()    ||
            jTextFieldFuncionarioNome.getText().isEmpty()   || jTextFieldFuncionarioDataNascimento.getText().isEmpty() ||
            jTextFieldFuncionarioCEP.getText().isEmpty()    || jTextFieldFuncionarioEndereco.getText().isEmpty() ||
            jTextFieldFuncionarioNumero.getText().isEmpty() || jTextFieldFuncionarioComplemento.getText().isEmpty() ||
            jTextFieldFuncionarioLogin.getText().isEmpty()  || jPasswordFieldFuncionarioSenha.getPassword().length == 0){
            
            JOptionPane.showMessageDialog(this,"Existem campos em branco!");
            return;
          
        }
       
        if(Funcionario.FuncionarioExiste(jTextFieldFuncionarioCPF.getText())){
            JOptionPane.showMessageDialog(this, "Esse funcionário já existe.");
            return;
        }
       
                           

                Funcionario.insertFuncionario(jTextFieldFuncionarioCPF.getText(),jTextFieldFuncionarioRG.getText(),
                        jTextFieldFuncionarioNome.getText(),jTextFieldFuncionarioDataNascimento.getText(),
                        jTextFieldFuncionarioCEP.getText(),jTextFieldFuncionarioEndereco.getText(),
                        jTextFieldFuncionarioNumero.getText(),jTextFieldFuncionarioComplemento.getText(),
                        jTextFieldFuncionarioLogin.getText(),jPasswordFieldFuncionarioSenha.getText());
                        LimpaTela();
                       
            }
          
        else{
            JOptionPane.showMessageDialog(this, "Para inserir o num novo funcionario, clique em novo.");
        }   
    }//GEN-LAST:event_jButtonFuncionarioSalvarActionPerformed
    private void LimpaTela(){
        jTextFieldFuncionarioCPF.setText(""); 
        jTextFieldFuncionarioRG.setText(""); 
        jTextFieldFuncionarioNome.setText(""); 
        jTextFieldFuncionarioDataNascimento.setText(""); 
        jTextFieldFuncionarioCEP.setText(""); 
        jTextFieldFuncionarioEndereco.setText(""); 
        jTextFieldFuncionarioNumero.setText(""); 
        jTextFieldFuncionarioComplemento.setText(""); 
        jTextFieldFuncionarioLogin.setText(""); 
        jPasswordFieldFuncionarioSenha.setText(""); 
    }
    private void jButtonFuncionarioNovoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonFuncionarioNovoActionPerformed
        LimpaTela();
        jTextFieldFuncionarioNome.setEnabled(true);
        jTextFieldFuncionarioCPF.setEnabled(true);
        jTextFieldFuncionarioRG.setEnabled(true);
        jTextFieldFuncionarioDataNascimento.setEnabled(true);
        jPasswordFieldFuncionarioSenha.setEnabled(true);
        sStatus = StatusFuncionarioPrincipal.scInserindo;
    }//GEN-LAST:event_jButtonFuncionarioNovoActionPerformed

    private void jButtonFuncionarioDeletarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonFuncionarioDeletarActionPerformed
        if (sStatus != StatusFuncionarioPrincipal.scPesquisado)
           JOptionPane.showMessageDialog(this,"Pesquise um cliente para deletá-lo.");
        else{
            Funcionario.deleteFuncionarioPeloCPF(jTextFieldFuncionarioCPF.getText());
            LimpaTela();  
            jTextFieldFuncionarioNome.setEnabled(true);
            jTextFieldFuncionarioCPF.setEnabled(true);
            jTextFieldFuncionarioRG.setEnabled(true);
            jTextFieldFuncionarioDataNascimento.setEnabled(true);
            jPasswordFieldFuncionarioSenha.setEnabled(true);
            sStatus = StatusFuncionarioPrincipal.scInserindo;
        }
    }//GEN-LAST:event_jButtonFuncionarioDeletarActionPerformed

    private void jTextFieldFuncionarioNomeFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jTextFieldFuncionarioNomeFocusLost
        String nome = jTextFieldFuncionarioNome.getText();
        if (nome.length() > 30){
            JOptionPane.showMessageDialog(this, "Nome inválido.");
            jTextFieldFuncionarioNome.requestFocus();
            jTextFieldFuncionarioNome.selectAll();
            return;
        }
        for (int i = 0; i < nome.length(); i++)
            if (!Character.isAlphabetic(nome.charAt(i)) && nome.charAt(i)!=' '){ //Arrumei pois antes nao estava permitindo insercao de nomes e sobrenomes...Augusto
                JOptionPane.showMessageDialog(this, "Nome inválido.");
                jTextFieldFuncionarioNome.requestFocus();
                jTextFieldFuncionarioNome.selectAll(); 
                return;
            }
       //jTextFieldFuncionarioNome.setEnabled(true);     // TODO add your handling code here:
    }//GEN-LAST:event_jTextFieldFuncionarioNomeFocusLost

    private void jTextFieldFuncionarioCPFFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jTextFieldFuncionarioCPFFocusLost
     
        String CPF= jTextFieldFuncionarioCPF.getText();
        
        if(CPF.length()!=11 || !Funcionario.validaCPF(CPF) || Funcionario.FuncionarioExiste(CPF) )
        {       JOptionPane.showMessageDialog(this, "CPF inválido.");
                jTextFieldFuncionarioCPF.requestFocus();
                jTextFieldFuncionarioCPF.selectAll(); 
                return;}
        
        //jTextFieldFuncionarioCPF.setEnabled(true);        // TODO add your handling code here:
    }//GEN-LAST:event_jTextFieldFuncionarioCPFFocusLost

    private void jTextFieldFuncionarioRGFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jTextFieldFuncionarioRGFocusLost
        String RG=jTextFieldFuncionarioRG.getText();
        
          for (int i = 0; i < RG.length(); i++)
            if (!Character.isDigit(RG.charAt(i))){
                JOptionPane.showMessageDialog(this, "RG inválido.");
               jTextFieldFuncionarioRG.requestFocus();
                jTextFieldFuncionarioRG.selectAll(); 
                return;
            }          // TODO add your handling code here:
    }//GEN-LAST:event_jTextFieldFuncionarioRGFocusLost

    private void jTextFieldFuncionarioDataNascimentoFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jTextFieldFuncionarioDataNascimentoFocusLost
       String Data=jTextFieldFuncionarioDataNascimento.getText();     
      int Dia=Funcionario.GeraDias(Data);
      int Ano=Funcionario.GeraAno(Data);
      int Mes=Funcionario.GeraMes(Data);
            if(!Funcionario.isDate(Data)||Data.equals(""))
                {        JOptionPane.showMessageDialog(this, "Data Inválida.");
                      jTextFieldFuncionarioDataNascimento.requestFocus();
                      jTextFieldFuncionarioDataNascimento.selectAll();
                      return;
                }        // TODO add your handling code here:
    }//GEN-LAST:event_jTextFieldFuncionarioDataNascimentoFocusLost

    private void jTextFieldFuncionarioEnderecoFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jTextFieldFuncionarioEnderecoFocusLost
  
   
   
   // TODO add your handling code here:
    }//GEN-LAST:event_jTextFieldFuncionarioEnderecoFocusLost

    private void jTextFieldFuncionarioNumeroFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jTextFieldFuncionarioNumeroFocusLost
 
        String numero = jTextFieldFuncionarioNumero.getText();        
        for (int i = 0; i < numero.length(); i++)
            if (!Character.isDigit(numero.charAt(i))){
                JOptionPane.showMessageDialog(this, "Numero inválido.");
                jTextFieldFuncionarioNumero.requestFocus();
                jTextFieldFuncionarioNumero.selectAll(); 
                return;
            }        // TODO add your handling code here:
    }//GEN-LAST:event_jTextFieldFuncionarioNumeroFocusLost

    private void jTextFieldFuncionarioComplementoFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jTextFieldFuncionarioComplementoFocusLost
        // TODO add your handling code here:
    }//GEN-LAST:event_jTextFieldFuncionarioComplementoFocusLost

    private void jTextFieldFuncionarioCEPFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jTextFieldFuncionarioCEPFocusLost
          String cep = jTextFieldFuncionarioCEP.getText(); 
        if (cep.length() != 8 && cep.length() != 0){
            JOptionPane.showMessageDialog(this,"Valor de CEP Inválido.");
            jTextFieldFuncionarioCEP.requestFocus();
            jTextFieldFuncionarioCEP.selectAll();
            return;
        }
        for (int i = 0; i < cep.length(); i++){
            if (!Character.isDigit(cep.charAt(i))){
                JOptionPane.showMessageDialog(this,"Valor de CEP Inválido.");
                jTextFieldFuncionarioCEP.requestFocus();
                jTextFieldFuncionarioCEP.selectAll();
                return;
              
            }
        }
             // TODO add your handling code here:
    }//GEN-LAST:event_jTextFieldFuncionarioCEPFocusLost

    private void jTextFieldFuncionarioLoginFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jTextFieldFuncionarioLoginFocusLost
        // TODO add your handling code here:
    }//GEN-LAST:event_jTextFieldFuncionarioLoginFocusLost

    private void jPasswordFieldFuncionarioSenhaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jPasswordFieldFuncionarioSenhaActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jPasswordFieldFuncionarioSenhaActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButtonFuncionarioDeletar;
    private javax.swing.JButton jButtonFuncionarioEditar;
    private javax.swing.JButton jButtonFuncionarioNovo;
    private javax.swing.JButton jButtonFuncionarioPesquisar;
    private javax.swing.JButton jButtonFuncionarioSalvar;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabelFuncionarioCEP;
    private javax.swing.JLabel jLabelFuncionarioCPF;
    private javax.swing.JLabel jLabelFuncionarioComplemento;
    private javax.swing.JLabel jLabelFuncionarioDataNascimento;
    private javax.swing.JLabel jLabelFuncionarioEndereco;
    private javax.swing.JLabel jLabelFuncionarioLogin;
    private javax.swing.JLabel jLabelFuncionarioNome;
    private javax.swing.JLabel jLabelFuncionarioNumero;
    private javax.swing.JLabel jLabelFuncionarioRg;
    private javax.swing.JLabel jLabelFuncionarioSenha;
    private javax.swing.JPasswordField jPasswordFieldFuncionarioSenha;
    private javax.swing.JTextField jTextFieldFuncionarioCEP;
    private javax.swing.JTextField jTextFieldFuncionarioCPF;
    private javax.swing.JTextField jTextFieldFuncionarioComplemento;
    private javax.swing.JTextField jTextFieldFuncionarioDataNascimento;
    private javax.swing.JTextField jTextFieldFuncionarioEndereco;
    private javax.swing.JTextField jTextFieldFuncionarioLogin;
    private javax.swing.JTextField jTextFieldFuncionarioNome;
    private javax.swing.JTextField jTextFieldFuncionarioNumero;
    private javax.swing.JTextField jTextFieldFuncionarioRG;
    // End of variables declaration//GEN-END:variables
}
